package usbcali.edu.co.pqrs.modelo.control;

import java.util.List;

import usbcali.edu.co.pqrs.modelo.SolicitudPqr;
import usbcali.edu.co.pqrs.modelo.dto.AnexosRespuestaDTO;
import usbcali.edu.co.pqrs.modelo.dto.AnexosSolicitanteDTO;
import usbcali.edu.co.pqrs.modelo.dto.AnxsXAreaDTO;
import usbcali.edu.co.pqrs.modelo.dto.DetalleDTO;
import usbcali.edu.co.pqrs.modelo.dto.InfoSolicitanteDTO;
import usbcali.edu.co.pqrs.modelo.dto.SolicitudPqrDTO;

/**
 * @author Zathura Code Generator http://code.google.com/p/zathura
 * 
 */
public interface ISolicitudPqrLogic {
	public List<SolicitudPqr> getSolicitudPqr() throws Exception;

	/**
	 * Save an new SolicitudPqr entity
	 */
	public void saveSolicitudPqr(SolicitudPqr entity) throws Exception;

	/**
	 * Delete an existing SolicitudPqr entity
	 * 
	 */
	public void deleteSolicitudPqr(SolicitudPqr entity) throws Exception;

	/**
	 * Update an existing SolicitudPqr entity
	 * 
	 */
	public void updateSolicitudPqr(SolicitudPqr entity) throws Exception;

	/**
	 * Load an existing SolicitudPqr entity
	 * 
	 */
	public SolicitudPqr getSolicitudPqr(Long idSolPqr) throws Exception;

	public List<SolicitudPqr> findByCriteria(Object[] variables,
			Object[] variablesBetween, Object[] variablesBetweenDates)
			throws Exception;

	public List<SolicitudPqr> findPageSolicitudPqr(String sortColumnName,
			boolean sortAscending, int startRow, int maxResults)
			throws Exception;

	public Long findTotalNumberSolicitudPqr() throws Exception;

	public List<SolicitudPqrDTO> getDataSolicitudPqr() throws Exception;

	public List<SolicitudPqrDTO> traerSolicitud(Long idTipo,
			String nombreCliente);

	public void guardarSolicitud(InfoSolicitanteDTO solicitante,
			SolicitudPqrDTO solicitud, String[] selectedReclamos,
			String[] selectedSolicitud,
			List<AnexosSolicitanteDTO> listaAnexosDTO) throws Exception;

	public List<SolicitudPqrDTO> consultarSolicitudes(String radicado,
			int tipoSolicitud, int estado, String fechaDesde, String fechaHasta)
			throws Exception;

	public List<DetalleDTO> consultarDetalle(String numeroRadicacion)
			throws Exception;

	public void cambiarDeArea(SolicitudPqr entity, Long idanex,
			List<AnexosRespuestaDTO> listaAnexosRespuesta,
			Long idSolicitudArea, String descrip2, String login)
			throws Exception;

	public List<SolicitudPqrDTO> getDataSolicitudPqrByLogin(String login)
			throws Exception;

	public List<AnxsXAreaDTO> traerAnexosPorArea(Long idArea) throws Exception;

	public void responderSolicitud(
			List<AnexosRespuestaDTO> listaAnexosRespuesta,
			Long idSolicitudSeleccionada, Long idArea, Long idSolicitudArea,
			String descrip2, String login, String correoCliente)
			throws Exception;

	void enviarCorreo(String descrip2,
			List<AnexosRespuestaDTO> listaAnexosRespuesta, String correoCliente);

}
